package cn.stylefeng.guns.modular.basic.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import cn.stylefeng.guns.modular.basic.entity.BasicOperate;
import cn.stylefeng.guns.modular.basic.model.params.BasicOperateParam;
import cn.stylefeng.guns.modular.basic.model.result.BasicOperateResult;

/**
 * 运营部表（原系统：分公司表） Mapper 接口
 */
public interface BasicOperateMapper extends BaseMapper<BasicOperate> {

    /**
     * 获取列表
     *
     * @author zhucx
     * @Date 2019-06-21
     */
    List<BasicOperateResult> customList(@Param("paramCondition") BasicOperateParam paramCondition);

    /**
     * 获取map列表
     *
     * @author zhucx
     * @Date 2019-06-21
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") BasicOperateParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author zhucx
     * @Date 2019-06-21
     */
    Page<BasicOperateResult> customPageList(@Param("page") Page page, @Param("paramCondition") BasicOperateParam paramCondition,@Param("condition")String condition ,@Param("operateId")Long operateId);

    /**
     * 获取分页map列表
     *
     * @author zhucx
     * @Date 2019-06-21
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") BasicOperateParam paramCondition);

	List<BasicOperate> findListByDeptId(@Param("deptId") Long deptId);

	List<BasicOperateResult> findListBySpec(@Param("paramCondition")BasicOperateParam param ,@Param("operateId")Long operateId);

	BasicOperateResult findBySpec(@Param("paramCondition")BasicOperateParam param ,@Param("operateId")Long operateId);

	List<BasicOperateResult> dayTotalOrderCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> dayTotalOrderVolume(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> dayTotalOrderFayunCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> dayTotalFayunFenxi(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> dayTotalWeisongdaFenxi(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> dayTotalWeiqianshouFenxi(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> monthTotalOrderCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> monthTotalOrderVolume(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> monthTotalHuanjieFenxi(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> monthTotalFayunOrderCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	BasicOperateResult monthTotalFayunOrderCountById(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> monthTotalSongdaOrderCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	BasicOperateResult monthTotalSongdaOrderCountById(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> monthTotalQianshouOrderCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	BasicOperateResult monthTotalQianshouOrderCountById(@Param("paramCondition")BasicOperateParam basicOperateParam);

	BasicOperateResult monthTotalQianOrderCountTimeById(@Param("paramCondition")BasicOperateParam basicOperateParam2);

	List<BasicOperateResult> monthTotalQianOrderCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	BasicOperateResult monthTotalFayunCount(@Param("paramCondition")BasicOperateParam basicOperateParam);

	List<BasicOperateResult> findTransportListBySpec(@Param("paramCondition")BasicOperateParam basicOperateParam
			, @Param("month")String month);

	Integer addReturnId(@Param("paramCondition")BasicOperateParam basicOperateParam);

}
